home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / PASCAL / 0920.ZIP / PRINTR.ARC / PRINTER.DOC next >
Text File  |  1988-01-24  |  3KB  |  63 lines

  1. { PRINTER -- A replacement unit for the standard Turbo 4 PRINTER unit.
  2.  
  3.   Version 1.0 -  1/24/1988 - First general release
  4.  
  5.   Scott Bussinger
  6.   Professional Practice Systems
  7.   110 South 131st Street
  8.   Tacoma, WA  98444
  9.   (206)531-8944
  10.   Compuserve 72247,2671
  11.  
  12.   This UNIT for Turbo Pascal version 4.0 replaces the standard PRINTER unit in
  13. provided with the compiler and solves some problems related to sending printer
  14. control strings and graphics data to printers using the LST file.
  15.   DOS supports two modes of access to files and devices.  These are either
  16. RAW and COOKED modes (or BINARY and ASCII modes, depending on what reference
  17. you are looking at) and control the way that data being written or read is
  18. interpreted by DOS itself. For example in COOKED mode, all tabs that output
  19. are converted into spaces and ^C will stop the program. In RAW mode, data is
  20. passed directly to the file or device with no special interpretation.
  21.   The PRINTER unit supplied with Turbo Pascal version 4.0 simply opens a DOS
  22. handle pointing to the printer device and lets DOS use the default COOKED
  23. mode. The problem arises that if you try and send a ^Z (or #26 or chr(26)) in
  24. this mode, all further output to the printer is lost. The reason is that DOS
  25. is interpreting the ^Z as an end of file (EOF) marker and closes the output
  26. device. The solution is simple -- just change the printer file to RAW mode.
  27. Since there is no reason to interpret the codes being sent to the printer
  28. anyway, this works fine.
  29.   This unit does just that and then restores the original value of the
  30. COOKED/RAW flag just to be sure no other programs get confused. The easiest
  31. way to use this unit is to compile it to disk and replace the standard PRINTER
  32. unit in the TURBO.TPL file. If you don't at least remove the original PRINTER
  33. unit from TURBO.TPL file, then this unit will never be used.
  34.   To replace the PRINTER unit, go to the directory containing all of your
  35. Turbo files and first be sure you are not working with your master disks. ONLY
  36. DO THESE CHANGES TO A COPY OF THE TURBO.TPL FILE! Put a compiled version of
  37. the new PRINTER unit in the directory (that will be the PRINTER.TPU file).
  38. Now run the library utility program as follows:
  39.         TPUMOVER TURBO /-PRINTER /+PRINTER
  40. This deletes the original PRINTER unit and adds the new PRINTER unit to the
  41. TURBO.TPL file.  You can also delete the PRINTER.TPU file now.
  42.   Having made these changes, you should be able to use the PRINTER unit
  43. exactly as documented in the Turbo Pascal manual, except that it will now work
  44. in all cases.
  45.   If you compile and run this DOC file, it will test that you have
  46. successfully compiled and installed the new PRINTER unit. If you run this
  47. program on a machine with a printer attached, you should see TWO output lines.
  48. If run on an un-replaced TURBO.TPL, you'll see only one line. Since the ^Z is
  49. being sent to your printer and this can have different effects on different
  50. printers, you may instead see both lines of information stuck together or in a
  51. different font or something. This is a fine indication and means the fix did
  52. work, but I suggest you turn off your printer to make sure it hasn't been left
  53. in a strange mode. }
  54.  
  55. program Test;
  56.  
  57. uses Printer;
  58.  
  59. begin
  60. writeln(Lst,'This is the first line and will always show up.');
  61. writeln(Lst,^Z'This line only shows up with the new PRINTER unit.')
  62. end.
  63.